//@version: $Id: Global.h 138 2010-12-09 00:05:57Z shoutingchief@gmail.com $

#pragma once

//Global header file to add universally useful defines and enums

//====================
//General Definitions
//====================
#define	NULL		0
#define	BUFFER_SIZE	256
#define	MAX(a, b)	(a > b?a:b)
#define	MIN(a, b)	(a < b?a:b)
#define NUMBER_OF_TIMES_GAME_RUNS 2

//====================
//Prototype Definitions
//====================
class Map;
class Shape;

//====================
//Grid Dimensions
//====================
#define	WIDTH	6
#define	HEIGHT	WIDTH

//====================
//Map Definitions
//====================
#define	COMBO_MAX	3
#define	CLICK_MAX	2

/*Author: Jared Bills*/
//Map coordinates for shapes
struct MapCoord {
	unsigned int x;
	unsigned int y;
};

/*Author: Jared Bills*/
//Combo of COMBO_MAX number of shapes grouped together, with respective coordinates
struct Combo {
	MapCoord comboCoords[COMBO_MAX];
	Shape * comboShapes[COMBO_MAX];
};

const enum ComboType {
	HORIZONTAL,
	VERTICAL,
	COMBO_SIZE,
};

//====================
//Shape Definitions
//====================
const enum ShapeType {
	SPHERE = 0,
	CUBE,
	PYRAMID,
	HEXAGON,
	DIAMOND,
	STAR,
	SHAPE_SIZE,
	SHAPE_NONE,
};



//for sound, it has lots of warnings that im not sure how to fix
//#define _SOUND